#target illustrator

function replaceObject() {
    var doc = app.activeDocument;
    var selectedItems = doc.selection;

    if (selectedItems.length !== 2) {
        alert("请先选中两个对象：\n\n1️⃣ 第一个选中的裁片（固定位置）\n2️⃣ 第二个选中的裁片（用于替换）");
        return;
    }

    var targetItem = selectedItems[0]; // 被替换的裁片 A
    var replacementItem = selectedItems[1]; // 用来替换的裁片 B

    // 获取目标裁片 A 的位置
    var targetBounds = targetItem.geometricBounds;
    var targetX = (targetBounds[0] + targetBounds[2]) / 2; // 中心点 X
    var targetY = (targetBounds[1] + targetBounds[3]) / 2; // 中心点 Y
    var targetHeight = targetBounds[3] - targetBounds[1]; // 目标裁片高度

    // 获取替换裁片 B 的位置和高度
    var replacementBounds = replacementItem.geometricBounds;
    var replacementHeight = replacementBounds[3] - replacementBounds[1]; // 替换裁片高度

    // 计算 B 需要移动的距离
    var deltaX = targetX - (replacementBounds[0] + replacementBounds[2]) / 2;
    var deltaY = targetY - (replacementBounds[1] + replacementBounds[3]) / 2;

    // 调整替换裁片 B 的大小（根据目标裁片的高度）
    var scaleFactor = targetHeight / replacementHeight; // 计算缩放比例
    replacementItem.resize(scaleFactor * 100, scaleFactor * 100);  // 缩放裁片

    // 移动替换裁片 B 到 A 的位置
    replacementItem.position = [replacementItem.position[0] + deltaX, replacementItem.position[1] + deltaY];

    // 删除目标裁片 A
    targetItem.remove();

    alert("裁片替换成功！\n\n新裁片已移动到固定裁片的位置，并根据高度进行了缩放。");
}

replaceObject();